home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.table;
-
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.io.Serializable;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.DefaultListSelectionModel;
- import javax.swing.ListSelectionModel;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.EventListenerList;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.event.ListSelectionListener;
- import javax.swing.event.TableColumnModelEvent;
- import javax.swing.event.TableColumnModelListener;
-
- public class DefaultTableColumnModel implements TableColumnModel, PropertyChangeListener, ListSelectionListener, Serializable {
- protected Vector tableColumns = new Vector();
- protected ListSelectionModel selectionModel;
- protected int columnMargin;
- protected EventListenerList listenerList = new EventListenerList();
- protected transient ChangeEvent changeEvent = null;
- protected boolean columnSelectionAllowed;
- protected int totalColumnWidth;
- // $FF: synthetic field
- static Class class$javax$swing$event$TableColumnModelListener;
-
- public DefaultTableColumnModel() {
- this.setSelectionModel(this.createSelectionModel());
- this.setColumnMargin(1);
- this.setColumnSelectionAllowed(false);
- }
-
- public void addColumn(TableColumn var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Object is null");
- } else {
- this.tableColumns.addElement(var1);
- var1.addPropertyChangeListener(this);
- this.recalcWidthCache();
- this.fireColumnAdded(new TableColumnModelEvent(this, 0, this.getColumnCount() - 1));
- }
- }
-
- public void addColumnModelListener(TableColumnModelListener var1) {
- this.listenerList.add(class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")), var1);
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- protected ListSelectionModel createSelectionModel() {
- return new DefaultListSelectionModel();
- }
-
- protected void fireColumnAdded(TableColumnModelEvent var1) {
- Object[] var2 = this.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")))) {
- ((TableColumnModelListener)var2[var3 + 1]).columnAdded(var1);
- }
- }
-
- }
-
- protected void fireColumnMarginChanged() {
- Object[] var1 = this.listenerList.getListenerList();
-
- for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
- if (var1[var2] == (class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")))) {
- if (this.changeEvent == null) {
- this.changeEvent = new ChangeEvent(this);
- }
-
- ((TableColumnModelListener)var1[var2 + 1]).columnMarginChanged(this.changeEvent);
- }
- }
-
- }
-
- protected void fireColumnMoved(TableColumnModelEvent var1) {
- Object[] var2 = this.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")))) {
- ((TableColumnModelListener)var2[var3 + 1]).columnMoved(var1);
- }
- }
-
- }
-
- protected void fireColumnRemoved(TableColumnModelEvent var1) {
- Object[] var2 = this.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")))) {
- ((TableColumnModelListener)var2[var3 + 1]).columnRemoved(var1);
- }
- }
-
- }
-
- protected void fireColumnSelectionChanged(ListSelectionEvent var1) {
- Object[] var2 = this.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")))) {
- ((TableColumnModelListener)var2[var3 + 1]).columnSelectionChanged(var1);
- }
- }
-
- }
-
- public TableColumn getColumn(int var1) {
- return (TableColumn)this.tableColumns.elementAt(var1);
- }
-
- public int getColumnCount() {
- return this.tableColumns.size();
- }
-
- public int getColumnIndex(Object var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Identifier is null");
- } else {
- Enumeration var2 = this.getColumns();
-
- for(int var4 = 0; var2.hasMoreElements(); ++var4) {
- TableColumn var3 = (TableColumn)var2.nextElement();
- if (var1.equals(var3.getIdentifier())) {
- return var4;
- }
- }
-
- throw new IllegalArgumentException("Identifier not found");
- }
- }
-
- public int getColumnIndexAtX(int var1) {
- int var2 = 0;
- Point var3 = new Point(var1, 1);
- Rectangle var4 = new Rectangle(0, 0, 0, 3);
-
- for(Enumeration var5 = this.getColumns(); var5.hasMoreElements(); ++var2) {
- TableColumn var6 = (TableColumn)var5.nextElement();
- var4.width = var6.getWidth() + this.columnMargin;
- if (var4.contains(var3)) {
- return var2;
- }
-
- var4.x += var4.width;
- }
-
- return -1;
- }
-
- public int getColumnMargin() {
- return this.columnMargin;
- }
-
- public boolean getColumnSelectionAllowed() {
- return this.columnSelectionAllowed;
- }
-
- public Enumeration getColumns() {
- return this.tableColumns.elements();
- }
-
- public int getSelectedColumnCount() {
- if (this.selectionModel != null) {
- int var1 = this.selectionModel.getMinSelectionIndex();
- int var2 = this.selectionModel.getMaxSelectionIndex();
- int var3 = 0;
-
- for(int var4 = var1; var4 <= var2; ++var4) {
- if (this.selectionModel.isSelectedIndex(var4)) {
- ++var3;
- }
- }
-
- return var3;
- } else {
- return 0;
- }
- }
-
- public int[] getSelectedColumns() {
- if (this.selectionModel != null) {
- int var1 = this.selectionModel.getMinSelectionIndex();
- int var2 = this.selectionModel.getMaxSelectionIndex();
- if (var1 != -1 && var2 != -1) {
- int[] var3 = new int[1 + (var2 - var1)];
- int var4 = 0;
-
- for(int var5 = var1; var5 <= var2; ++var5) {
- if (this.selectionModel.isSelectedIndex(var5)) {
- var3[var4++] = var5;
- }
- }
-
- int[] var6 = new int[var4];
- System.arraycopy(var3, 0, var6, 0, var4);
- return var6;
- } else {
- return new int[0];
- }
- } else {
- return new int[0];
- }
- }
-
- public ListSelectionModel getSelectionModel() {
- return this.selectionModel;
- }
-
- public int getTotalColumnWidth() {
- return this.totalColumnWidth;
- }
-
- public void moveColumn(int var1, int var2) {
- if (var1 >= 0 && var1 < this.getColumnCount() && var2 >= 0 && var2 < this.getColumnCount()) {
- if (var1 != var2) {
- TableColumn var3 = (TableColumn)this.tableColumns.elementAt(var1);
- boolean var4 = false;
- if (this.selectionModel.isSelectedIndex(var1)) {
- this.selectionModel.removeSelectionInterval(var1, var1);
- var4 = true;
- }
-
- this.tableColumns.removeElementAt(var1);
- this.tableColumns.insertElementAt(var3, var2);
- if (var4) {
- this.selectionModel.addSelectionInterval(var2, var2);
- }
-
- this.fireColumnMoved(new TableColumnModelEvent(this, var1, var2));
- }
- } else {
- throw new IllegalArgumentException("moveColumn() - Index out of range");
- }
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- String var2 = var1.getPropertyName();
- if ("columWidth".equals(var2)) {
- this.recalcWidthCache();
- } else if (!"headerValue".equals(var2) && !"headerRenderer".equals(var2)) {
- "cellRenderer".equals(var2);
- }
-
- }
-
- protected void recalcWidthCache() {
- Enumeration var1 = this.getColumns();
-
- for(this.totalColumnWidth = 0; var1.hasMoreElements(); this.totalColumnWidth += ((TableColumn)var1.nextElement()).getWidth() + this.columnMargin) {
- }
-
- }
-
- public void removeColumn(TableColumn var1) {
- int var2 = this.tableColumns.indexOf(var1);
- if (var2 != -1) {
- if (this.selectionModel != null) {
- this.selectionModel.removeIndexInterval(var2, var2);
- }
-
- var1.removePropertyChangeListener(this);
- this.tableColumns.removeElementAt(var2);
- this.recalcWidthCache();
- this.fireColumnRemoved(new TableColumnModelEvent(this, this.getColumnCount() - 1, 0));
- }
-
- }
-
- public void removeColumnModelListener(TableColumnModelListener var1) {
- this.listenerList.remove(class$javax$swing$event$TableColumnModelListener != null ? class$javax$swing$event$TableColumnModelListener : (class$javax$swing$event$TableColumnModelListener = class$("javax.swing.event.TableColumnModelListener")), var1);
- }
-
- public void setColumnMargin(int var1) {
- if (var1 != this.columnMargin) {
- this.columnMargin = var1;
- this.recalcWidthCache();
- this.fireColumnMarginChanged();
- }
-
- }
-
- public void setColumnSelectionAllowed(boolean var1) {
- this.columnSelectionAllowed = var1;
- }
-
- public void setSelectionModel(ListSelectionModel var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Cannot set a null SelectionModel");
- } else {
- ListSelectionModel var2 = this.selectionModel;
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeListSelectionListener(this);
- }
-
- this.selectionModel = var1;
- if (var1 != null) {
- var1.addListSelectionListener(this);
- }
- }
-
- }
- }
-
- public void valueChanged(ListSelectionEvent var1) {
- this.fireColumnSelectionChanged(var1);
- }
- }
-